﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using Modelo;
using Negocio;

namespace Interfaces
{
    /// <summary>
    /// Interaction logic for IUPlanificarReceta.xaml
    /// </summary>
    public partial class IUPlanificarReceta : Window
    {
        DateTime Fecha;
        string Tipo;
        List<Receta> recetas;
        Comida elegida;
        public IUPlanificarReceta(DateTime fecha,string tipo,Comida actual)
        {
            InitializeComponent();
            Fecha = fecha;
            Tipo = tipo;
            elegida = actual;
           recetas = ControladorMenuDiario.GetRecetas();
            if(recetas==null)
                recetas=new List<Receta>();
            foreach(Receta receta in recetas)
            {
                listBox1.Items.Add(receta.Nombre);
            }
            try
            {
                adultos.Text = actual.CantidadAdultos.ToString();
                ninios.Text = actual.CantidadNiños.ToString();
                int indice = listBox1.Items.IndexOf(actual.recetas.Nombre);
                if (indice > -1)
                    listBox1.SelectedIndex = indice;
            }
            catch (Exception)
            {
                adultos.Text = "0";
                ninios.Text = "0";
                
            }
        }

        private void buttonSeleccionar_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                string comida=listBox1.SelectedItem.ToString();
                MessageBoxResult result = MessageBox.Show("Esta seguro que desea elegir "+comida+" para este dia","Seguro?",MessageBoxButton.YesNo);
                if (MessageBoxResult.Yes == result)
                {
                    if (ControladorMenuDiario.Validar(Convert.ToInt32(adultos.Text), Convert.ToInt32(ninios.Text)))
                    {
                        ControladorMenuDiario.AnadirComida(Fecha, Tipo, comida, Convert.ToInt32(adultos.Text), Convert.ToInt32(ninios.Text));
                        elegida = ControladorMenuDiario.nuevaComida(Fecha, Tipo, recetas[listBox1.Items.IndexOf(comida)], Convert.ToInt32(adultos.Text), Convert.ToInt32(ninios.Text));
                        this.Close();
                    }
                    else
                        MessageBox.Show("adultos y ninios deben ser enteros positivos y la suma de ambos no puede ser 0");
                }

            }
            catch (Exception)
            {
               
            }
        }

        private void buttonVer_Click(object sender, RoutedEventArgs e)
        {
            
        }

        private void Window_Closed(object sender, EventArgs e)
        {
            }

        private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (listBox1.SelectedIndex > -1)
            {
                labelNombre.Content = listBox1.SelectedItem.ToString();
                FlowDocument myFlowDoc = new FlowDocument();
                int indice = recetas.FindIndex(recet => recet.Nombre == listBox1.SelectedItem.ToString());
                if (indice > -1)
                {
                    myFlowDoc.Blocks.Add(new Paragraph(new Run(recetas[indice].Procedimiento)));
                    richTextBox1.Document = myFlowDoc;
                }
            }
            
        }
        
        private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
        {
            listBox1.Items.Clear();
            List<Receta> recetas=Negocio.ControladorReceta.buscadas(textBox1.Text);
            foreach (Receta receta in recetas)
                listBox1.Items.Add(receta.Nombre);
        }
    }
}
